package com.arpa.oms.domain.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * <p>
 * OMS应付明细DTO
 * </p>
 *
 * @author LEO
 * @since 2020-12-04
 */
@Data
@ApiModel(value="OmsPayableDetailDTO对象", description="OMS应付明细")
public class OmsPayableDetailDTO implements java.io.Serializable {


    @ApiModelProperty(value = "货主标识",hidden = true)
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "来源单号")
    private String sourceCode;

    @ApiModelProperty(value = "单据类型")
    private String billType;

    @ApiModelProperty(value = "供应商名称")
    private String supplierName;


    @ApiModelProperty(value = "订单日期开始")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate gmtBillStart;

    @ApiModelProperty(value = "订单日期结束")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate gmtBillEnd;

    @ApiModelProperty(value = "金额上限")
    private BigDecimal amountMoneyUp;
    @ApiModelProperty(value = "金额下限")
    private BigDecimal amountMoneyLow;

    @ApiModelProperty(value = "已结算金额上限")
    private BigDecimal settledMoneyUp;
    @ApiModelProperty(value = "已结算金额下限")
    private BigDecimal settledMoneyLow;

    @ApiModelProperty(value = "未结算金额上限")
    private BigDecimal unsettledMoneyUp;
    @ApiModelProperty(value = "未结算金额下限")
    private BigDecimal unsettledMoneyLow;


    @ApiModelProperty(value = "待结算金额上限")
    private BigDecimal waitingSettledMoneyUp;
    @ApiModelProperty(value = "待结算金额下限")
    private BigDecimal waitingSettledMoneyLow;

    @ApiModelProperty(value = "减免金额上限")
    private BigDecimal amountReduceUp;
    @ApiModelProperty(value = "减免金额下限")
    private BigDecimal amountReduceLow;



    @ApiModelProperty(value = "状态:UNSETTLED(未结算)，SETTLED(已结算)，PARTIALLY_SETTLED(部分结算)")
    private String status;

    @ApiModelProperty(value = "备注")
    private String remarks;


    @ApiModelProperty(value = "第几页")
    private Integer pageNum=1;

    @ApiModelProperty(value = "每页条数")
    private Integer pageSize=10;

    @ApiModelProperty(value = "排序字段")
    private String sortField;

    @ApiModelProperty(value = "排序方式")
    private String sortType;
}
